Foundations of Dynamic Optimization